前言

安装php有两种方式,一种是通过包管理器,另一种是通过编译安装.

包管理器安装优缺点

优点: 简单. 缺点:

  1. 不能安装多个不同php版本.
  2. 不能指定php安装目录.
  3. php目录文件位置过于分散.
  4. 如果有多个站点只能公用一个php-fpm,降低并发效率.

编译安装优缺点

优点:

  1. 可以安装多个不同php版本.
  2. 可以指定php安装目录.
  3. php目录文件集中,便于管理.
  4. 多个站点可以使用多个php-fpm,提高并发效率. 缺点: 步骤繁琐.

介于编译安装的诸多好处, 于是这篇文章告诉大家如何编译安装php

步骤

下载需要安装的php版本

去官网https://www.php.net/releases/下载php对应的版本包,我这里以7.2.31版本为演示

#新建临时存放文件夹
mkdir /usr/local/temp
#进入临时文件夹
cd /usr/local/temp
#下载php-7.2.31版本
wget https://www.php.net/distributions/php-7.2.31.tar.gz

注意点: 下载可能很慢.

解压缩

#解压php-7.2.31到当前目录
tar -xzvf php-7.2.31.tar.gz
#进入解压缩后的文件夹
cd /usr/local/temp/php-7.2.31

配置,编译,安装

#新建php需要安装的目录
mkdir -p /usr/local/php
#配置
./configure \
--prefix=/usr/local/php/php-7.2.31-jjziyuan \
--enable-fpm \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--enable-mbstring \
--enable-xml \
--with-gd \
--with-jpeg-dir \
--with-curl \
--with-openssl
#编译
make
#安装
make install

注意点:

  1. --enable --with后面接的是需要安装的模块, 如果是php官网自带的模块就用enable, 第三方模块用with.
  2. mysql数据库安装三个驱动模块--with-mysql --with-pdo-mysql --with-mysqli , 可以确保php与数据库的正确连接.
  3. --prefix后面接的是自己指定安装路径,这个必须要有. 否则安装后php文件会很分散, 卸载的时候极度麻烦. 但是指定路径后,卸载只要删除指定的文件夹就行.

配置php.ini文件和php-fpm.conf文件

配置文件位置:

  1. /usr/local/temp/php-7.2.31目录下有php.ini-production文件,这个文件就是我们需要的php配置文件.

  2. /usr/local/php/php-7.2.31-jjziyuan/etc目录下有php-fpm.conf.default,这个文件就是我们需要的php-fpm配置文件.

  3. 如果7.0+版本时, php-fpm有个php-fpm.d文件夹,里面有www.conf.default文件,这个是我们要的www.conf文件. 如果是5.0+版本着没有这个文件夹.也不需要配置www.conf

    #添加php.ini配置文件 cp /usr/local/temp/php-7.2.31/php.ini-production /usr/local/php/php-7.2.31-jjziyuan/etc/php.ini #添加php-fpm.conf配置文件 cp /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.conf.default /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.conf #添加www.conf配置文件 cp /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.d/www.conf.default /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.d/www.conf

修改配置文件

如果是7.0+版本则修改www.conf,如果是5.0+则修改php-fpm.conf

#修改文件内容
user = nginx
group = nginx
listen = 127.0.0.1:9001 #这个按需配置,如果有多个fpm,需要改动端口号

注意点:

  1. 使用nginx必须安装php-fpm模块, 因为nginx不能解析php文件.

  2. 启动php-fpm时最好指定下php.ini和php-fpm.conf的位置,命令:

    /usr/local/php/php-7.2.31-jjziyuan/sbin/php-fpm
    -c /usr/local/php/php-7.2.31-jjziyuan/etc/php.ini
    -y /usr/local/php/php-7.2.31-jjziyuan/etc/php-fpm.conf

  3. 查看是否启动成功ps aux | grep php-fpm

结尾

通过以上步骤就可以安装任意版本的php, 并且可以多个共存, 安装后安装目录也很集中, 方便管理.

安装过程碰到问题解决方法

如果安装过程碰到问题, 一定是缺少相关编译软件, 可以通过yum -y install [缺少的编译软件名] 安装缺少的编译软件来解决, 下面列出可能缺少的编译软件名

  1. gcc
  2. gcc-c++
  3. openssl
  4. openssl-devel
  5. zlib
  6. zlib-devel
  7. pcre
  8. pcre-devel
  9. libxml2-devel
  10. libjpeg-devel
  11. libpng
  12. libpng-devel
  13. curl-devel
#一次性安装
yum -y install gcc \
gcc-c++ \
openssl \
openssl-devel \
zlib \
zlib-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel \
libpng \
libpng-devel \
curl-devel
THE END
推荐文章
  • 解决wordpress中自定义类型或page类型的分页查询404问题

  • 黄帝内经-第28篇-通评虚实论篇(3)

  • linux上安装php扩展

  • 为什么不要做种植牙

  • 如何查询openai的chatgpt使用额度

  • 使用acme.sh实现网站ssl多域名泛域名自动续签

  • JS对粘贴板操作

  • 在ts中使用mocha

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字